package com.fansea.util;


import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.apache.http.HttpResponse;
import org.apache.http.util.EntityUtils;

import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public class AiChatUtil {

    public static String AiRecovery(String text){
        //请求头
        try {
            Map<String, String> headers = new HashMap<String, String>();
            headers.put("Content-Type","application/json");

            JSONObject myJsonObject = new JSONObject();
            HttpResponse httpResponse = AliHttpUtils.doGet("https://api.oioweb.cn/","/api/ai/chat?text="+ URLEncoder.encode(text,"UTF-8"), "GET", headers, new HashMap<>());

            String weather = EntityUtils.toString(httpResponse.getEntity());
            JSONObject jsonObject = JSON.parseObject(weather);

            String result = jsonObject.getString("result");
            String displayText = JSON.parseObject(result).getString("Text");
            if(displayText.equals("Empty")){
                return DemoTianAPI.getMsg2(text);
            }
            return displayText;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "机器人睡觉中~~";
    }


    public static void main(String[] args) {

        System.out.println(getAiMsg("人应该怎么活着？"));

    }

    public static String getAiMsg(String msg) {
//        https://api.moonshot.cn/v1/chat/completions
        try {
            Map<String, String> headers = new HashMap<String, String>();
            headers.put("Content-Type","application/json");
            headers.put("Authorization","Bearer sk-K3wvgvMol1jaVMTQizrxTxNZWpvq8bJeVHuedgdhjmA17Mpl");

            JSONObject myJsonObject = new JSONObject();
//        {
//            "model": "moonshot-v1-8k",
//                "messages": [
//            {"role": "system", "content": "你是 Kimi，由 Moonshot AI 提供的人工智能助手，你更擅长中文和英文的对话。你会为用户提供安全，有帮助，准确的回答。同时，你会拒绝一些涉及恐怖主义，种族歧视，黄色暴力等问题的回答。Moonshot AI 为专有名词，不可翻译成其他语言。"},
//            {"role": "user", "content": "你好，我叫李雷，1+1等于多少？"}
//    ],
//            "temperature": 0.3
//        }

            myJsonObject.put("model","moonshot-v1-8k");
            myJsonObject.put("temperature",0.3);

            ArrayList<HashMap> strings = new ArrayList<>();
            HashMap<String, String> hashMap = new HashMap<>();
            hashMap.put("role","system");
            hashMap.put("content","你是 Kimi，由 Moonshot AI 提供的人工智能助手，你更擅长中文和英文的对话。你会为用户提供安全，有帮助，准确的回答。同时，你会拒绝一些涉及恐怖主义，种族歧视，黄色暴力等问题的回答。Moonshot AI 为专有名词，不可翻译成其他语言。");
            strings.add(hashMap);
            HashMap<String, String> hashMap2 = new HashMap<>();
            hashMap2.put("role","user");
            hashMap2.put("content","你好，我叫李雷，1+1等于多少？");
            strings.add(hashMap2);

            myJsonObject.put("messages",JSON.toJSONString(strings));


            HttpResponse httpResponse = AliHttpUtils.doPost("https://api.moonshot.cn/","/v1/chat/completions", "POST", headers,new HashMap<>(),"{\n" +
                    "    \"model\": \"moonshot-v1-8k\",\n" +
                    "    \"messages\": [\n" +
                    "        {\"role\": \"system\", \"content\": \"你是 Kimi，由 Moonshot AI 提供的人工智能助手，你更擅长中文和英文的对话。你会为用户提供安全，有帮助，准确的回答。同时，你会拒绝一些涉及恐怖主义，种族歧视，黄色暴力等问题的回答。Moonshot AI 为专有名词，不可翻译成其他语言。\"},\n" +
                    "        {\"role\": \"user\", \"content\": \""+msg+"\"}\n" +
                    "    ],\n" +
                    "     \"temperature\": 0.3\n" +
                    "}");

            String weather = EntityUtils.toString(httpResponse.getEntity());
            JSONObject jsonObject = JSON.parseObject(weather);
            JSONArray choices = jsonObject.getJSONArray("choices");
            JSONObject jsonObject1 = choices.getJSONObject(0);
            JSONObject message = jsonObject1.getJSONObject("message");
            String content = message.getString("content");
            return content;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "ai睡觉中~";
    }
}
